﻿/*****************************************************************//**
 *
 * @file   FITKAbaqusAdaptorMaterialPlastic.h
 * @brief  Abaqus Material Plastic 适配器 用于读取INP过程中的Material 塑性项 解析。
 * @author fulipeng (flipengqd@yeah.net)
 * @date   2024-03-19
 *
 *********************************************************************/
#ifndef __FITKABAQUSADAPTORMATERIALPLASTIC__H__
#define __FITKABAQUSADAPTORMATERIALPLASTIC__H__

#include "FITKAbaqusAbstractAdaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"

 //前置声明
ForwardDeclarNS(AbaqusData, FITKDataCase)
ForwardDeclarNS(Interface, FITKAbaMaterial)
ForwardDeclarNS(Interface, FITKAbaMaterialPlastic)

namespace IO
{
    /**
     * @brief Abaqus Material Plastic 读写适配器
     * @author fulipeng (fulipengqd@yeah.net)
     * @date 2024-03-21
     */
    class FITKAbaqusAdaptorMaterialPlastic : public FITKAbaqusAbstractAdaptor
    {
    public:
        explicit FITKAbaqusAdaptorMaterialPlastic() = default;
        ~FITKAbaqusAdaptorMaterialPlastic() = default;
        /**
         * @brief 获取适配器数据类型名
         * @return 适配器数据类型名
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-03-20
         */
        QString getAdaptorClass() override;

        /**
         * @brief 适配器读取
         * @return 状态 true成功， false失败
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-03-20
         */
        bool adaptR() override;

        /**
         * @brief 适配器写出
         * @return 状态 true成功， false失败
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-03-20
         */
        bool adaptW() override;


    private:


    private:

        /**
         * @brief 材料数据
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-03-20
         */
        Interface::FITKAbaMaterial* _materialData{};
    };
    Register2FITKIOAdaptorFactory(INP, Interface::FITKAbaMaterialPlastic, FITKAbaqusAdaptorMaterialPlastic)
}

#endif
